#!/bin/bash

# 定义工作目录
# WORK_DIR="$HOME/ffmpeg_sources"

# # 创建工作目录
# mkdir -p "$WORK_DIR"
# cd "$WORK_DIR"

WORK_DIR="."

### 一、安装系统依赖
sudo apt-get update
sudo apt-get -y install \
autoconf \
automake \
build-essential \
cmake \
git-core \
libass-dev \
libfreetype6-dev \
libsdl2-dev \
libtool \
libva-dev \
libvdpau-dev \
libvorbis-dev \
libxcb1-dev \
libxcb-shm0-dev \
libxcb-xfixes0-dev \
pkg-config \
texinfo \
wget \
zlib1g-dev


### 一、下载函数（仅用文章原始链接）
download_original() {
    local file=$1
    local url=$2
    local desc=$3

    if [ -f "$file" ] && [ -s "$file" ]; then
        echo "✓ 已存在: $desc ($file)"
        return 0
    elif [ -f "$file" ] && [ ! -s "$file" ]; then
        echo "✗ 检测到空文件，重新下载: $desc ($file)"
        rm -f "$file"
    fi

    echo "→ 下载 $desc... ($url)"
    wget -c "$url" -O "$file"
    
    if [ $? -eq 0 ] && [ -s "$file" ]; then
        echo "✓ 下载完成: $desc"
        return 0
    else
        echo "✗ 下载失败: $desc"
        rm -f "$file"
        return 1
    fi
}


### 二、按文章顺序下载依赖包（仅用原文链接）

# 1. NASM汇编器（文章第2步）
download_original "nasm-2.14.02.tar.bz2" \
"https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2" \
"NASM 2.14.02"

# 2. Yasm汇编器（文章第3步）
download_original "yasm-1.3.0.tar.gz" \
"https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz" \
"Yasm 1.3.0"

# 3. libx264（文章第4步）
download_original "x264.tar.gz" \
"https://code.videolan.org/videolan/x264/-/archive/stable/x264.tar.gz" \
"libx264 稳定版"

# 4. libx265（文章第5步）
download_original "x265.tar.gz" \
"https://bitbucket.org/multicoreware/x265_git/downloads/x265.tar.gz" \
"libx265"

# 5. libvpx（文章第6步）
download_original "libvpx.tar.gz" \
"https://chromium.googlesource.com/webm/libvpx/+archive/refs/tags/v1.10.0.tar.gz" \
"libvpx 1.10.0"

# 6. libfdk-aac（文章第7步）
download_original "fdk-aac.tar.gz" \
"https://www.tortall.net/projects/fdk-aac/releases/fdk-aac-2.0.2.tar.gz" \
"libfdk-aac 2.0.2"

# 7. libmp3lame（文章第8步）
download_original "lame.tar.gz" \
"https://www.tortall.net/projects/lame/releases/lame-3.100.tar.gz" \
"libmp3lame 3.100"

# 8. libopus（文章第9步）
download_original "opus.tar.gz" \
"https://www.tortall.net/projects/opus/opus-1.3.1.tar.gz" \
"libopus 1.3.1"

# 9. libaom（文章第10步）
download_original "aom.tar.gz" \
"https://storage.googleapis.com/aom-releases/libaom-3.3.0.tar.gz" \
"libaom 3.3.0"

# 10. FFmpeg本体（文章第11步）
download_original "ffmpeg-4.2.1.tar.bz2" \
"https://ffmpeg.org/releases/ffmpeg-4.2.1.tar.bz2" \
"FFmpeg 4.2.1"


### 三、下载结果统计
echo "=== 下载完成 ==="
DOWNLOADED=$(find . -maxdepth 1 -type f -name "*.tar.*" | wc -l)
TOTAL=10
MISSING=$((TOTAL - DOWNLOADED))

if [ $MISSING -eq 0 ]; then
    echo "✔ 所有 $TOTAL 个依赖包下载完成！"
else
    echo "✓ 已下载: $DOWNLOADED 个文件"
    echo "✗ 未下载: $MISSING 个文件，请检查网络或手动下载"
    echo "未下载文件列表:"
    for i in {1..10}; do
        case $i in
            1) file="nasm-2.14.02.tar.bz2" ;;
            2) file="yasm-1.3.0.tar.gz" ;;
            3) file="x264.tar.gz" ;;
            4) file="x265.tar.gz" ;;
            5) file="libvpx.tar.gz" ;;
            6) file="fdk-aac.tar.gz" ;;
            7) file="lame.tar.gz" ;;
            8) file="opus.tar.gz" ;;
            9) file="aom.tar.gz" ;;
            10) file="ffmpeg-4.2.1.tar.bz2" ;;
        esac
        if [ ! -f "$file" ]; then
            echo "  - $file"
        fi
    done
fi

echo "所有文件保存路径: $WORK_DIR"